home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Power 1997 December
/
MACPOWER-1997-12.ISO.7z
/
MACPOWER-1997-12.ISO
/
AMUG
/
PROGRAMMING
/
Raven 1.2 Examples.sit
/
Raven 1.2 Examples
/
Quill
/
Source
/
PopupMenuEditor.cpp
< prev
next >
Wrap
Text File
|
1997-02-20
|
5KB
|
166 lines
/*
* File: PopupMenuEditor.cpp
* Summary: A view that knows how to edit a TPopupMenu.
* Written by: Jesse Jones
*
* Copyright ゥ 1996 Jesse Jones.
* For conditions of distribution and use, see copyright notice in ZTypes.h
*
* Change History (most recent first):
*
* <-> 12/01/96 JDJ Created
*/
#include "PopupMenuEditor.h"
#include <ZTextBox.h>
// ===================================================================================
// class CEditPopupMenuCommand
// ===================================================================================
//---------------------------------------------------------------
//
// CEditPopupMenuCommand::~CEditPopupMenuCommand
//
//---------------------------------------------------------------
CEditPopupMenuCommand::~CEditPopupMenuCommand()
{
}
//---------------------------------------------------------------
//
// CEditPopupMenuCommand::CEditPopupMenuCommand
//
//---------------------------------------------------------------
CEditPopupMenuCommand::CEditPopupMenuCommand(TPopupMenu* pane, const SPopupInfo& oldInfo, const SPopupInfo& newInfo) : Inherited(pane, oldInfo, newInfo)
{
}
//---------------------------------------------------------------
//
// CEditPopupMenuCommand::UpdatePane
//
//---------------------------------------------------------------
void CEditPopupMenuCommand::UpdatePane(const SPopupInfo& inInfo)
{
// Title is set by a seperate editor so we can't use the
// original value.
SPopupInfo info = inInfo;
info.stdControlInfo.title = mPane->GetTitle();
mPane->SetInfo(info);
}
#pragma mark -
// ===================================================================================
// CPopupMenuEditor
// ===================================================================================
static TReanimatorRegister<CPopupMenuEditor> sPopupEditorRegistrar;
//---------------------------------------------------------------
//
// CPopupMenuEditor::~CPopupMenuEditor
//
//---------------------------------------------------------------
CPopupMenuEditor::~CPopupMenuEditor()
{
}
//---------------------------------------------------------------
//
// CPopupMenuEditor::CPopupMenuEditor
//
//---------------------------------------------------------------
CPopupMenuEditor::CPopupMenuEditor(TView* superView) : Inherited(superView)
{
}
//---------------------------------------------------------------
//
// CPopupMenuEditor::Create [static]
//
//---------------------------------------------------------------
MReanimatable* CPopupMenuEditor::Create(MReanimatable* parent)
{
return new CPopupMenuEditor(dynamic_cast<TView*>(parent));
}
//---------------------------------------------------------------
//
// CPopupMenuEditor::GetEditorInfo
//
//---------------------------------------------------------------
SPopupInfo CPopupMenuEditor::GetEditorInfo() const
{
SPopupInfo info;
TTextBox* textBox = nil;
TPopupMenu* popup = nil;
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("Title Width"));
info.titleWidth = textBox->GetValue();
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("Menu ID"));
info.menuID = textBox->GetValue();
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("Initial Item"));
info.initialItem = textBox->GetValue();
popup = dynamic_cast<TPopupMenu*>(this->FindSubPane("Justification"));
if (popup->GetValue() == 1)
info.titleOptions = popupTitleLeftJust;
else if (popup->GetValue() == 2)
info.titleOptions = popupTitleCenterJust;
else
info.titleOptions = popupTitleRightJust;
popup = dynamic_cast<TPopupMenu*>(this->FindSubPane("Variation"));
info.variation = popup->GetValue();
return info;
}
//---------------------------------------------------------------
//
// CPopupMenuEditor::SetEditorInfo
//
//---------------------------------------------------------------
void CPopupMenuEditor::SetEditorInfo(const SPopupInfo& info)
{
TTextBox* textBox = nil;
TPopupMenu* popup = nil;
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("Title Width"));
textBox->SetValue(info.titleWidth);
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("Menu ID"));
textBox->SetValue(info.menuID);
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("Initial Item"));
textBox->SetValue(info.initialItem);
popup = dynamic_cast<TPopupMenu*>(this->FindSubPane("Justification"));
if (info.titleOptions == popupTitleLeftJust)
popup->SetValue(1);
else if (info.titleOptions == popupTitleCenterJust)
popup->SetValue(2);
else
popup->SetValue(3);
popup = dynamic_cast<TPopupMenu*>(this->FindSubPane("Variation"));
popup->SetValue(info.variation);
}